package com.aistar.filter;


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * WebConfigurer 需要实现WebMvcConfigurer接口，并实现里面的连个方法
 * （老版本的spring-boot中使用的是WebMvcConfigurerAdapter,新版本中已经过时，
 *  还有不能通过继承WebMvcConfigurationSupport这个类实现，这样会在某些情况下失效） *
 */
@Configuration //允许在上下文中注册额外的bean或导入其他配置类
public class WebConfigurer implements WebMvcConfigurer {


    //这个方法用于注册拦截器，我们自己定义的拦截器需要通过在这里添加注册后才能生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //addPathPatterns 用来设置拦截路径
        //excludePathPatterns 用来设置白名单，也就是不需要触发这个拦截器的路径。
        //addPathPatterns("/**") 表示拦截所有的请求
        //.excludePathPatterns("/login","/regist")表示出了登录与注册之外，都会拦截（因为登录注册不需要登录页可以访问）

        registry.addInterceptor(new AutoLoginFilter()).addPathPatterns("/**").excludePathPatterns("/customer/autoLogin",
                        "/customer/login.jsp","/js/**","/customer/add","/customer/getByTel","/customer/getCode","/customer/login",
                        "/customer/register.jsp","/index.jsp","/css/**","/dist/**","/images/**","/layui/**",
                "/product/getlongproduct","/product/getrimproduct","/product/gethotproduct","/product/getseckill");

    }
    //这个方法是用来配置静态资源的，比如html,js,css等
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {


    }
}
